package edu.neu.swc.cloud.service;

import edu.neu.swc.cloud.domain.Admin;
import edu.neu.swc.cloud.domain.Factory;

import java.util.List;

public interface AdminService {

    /**
     * 找到所有的管理员
     * @return
     */
    List<Admin> findAll();

    /**
     * 添加新的管理员
     * @param admin
     * @return
     */
    int addAdmin(Admin admin);

    /**
     * 依据ID查询用户
     * @param ad_id
     * @return
     */
    Admin findAdminById(int ad_id);

    /**
     * 修改用户信息
     * @param admin
     */
    void updateAdmin(Admin admin);

    /**
     * 按照ID删除用户信息
     * @param admin_id
     */
    void deleteAdmin(int admin_id);

    /**
     * 依据条件查询管理员信息
     * @param admin
     * @return
     */
    List<Admin> findAdminByCon(Admin admin);

    /**
     * 用户登陆系统，依据账号密码
     * @param ad_username
     * @param ad_password
     * @return
     */
    Admin logon(String ad_username, String ad_password);

    /**
     * 依据管理员信息找到自己所属工厂
     * @param will
     * @return
     */
    Factory ownFactory(Admin will);

    /**
     * 用户注册，包括云工厂管理员，经销商
     * @param admin
     * @return
     */
    int register(Admin admin);

    /**
     * 获取满足条件管理员的总数目
     * @param s
     * @return
     */
    int getAdminCounts(String s);

    /**
     * 依据条件分页获取管理员列表
     * @param s
     * @param pageStart
     * @param pageSize
     * @return
     */
    List<Admin> findAdminByQuery(String s, int pageStart, int pageSize);
}
